2026年7月17日 下午改动问题总结
================================================

1. 门店订单页 — 付款凭证(paymentVoucher)未显示
   文件: src/pages/store/orders/index.tsx
   问题: renderOrderCard 中只渲染了送达凭证(sendEndImg)，遗漏了付款凭证(paymentVoucher)
   修复: 在买家备注下方、送达凭证上方新增付款凭证展示区（绿色背景），支持点击预览大图

2. 门店订单页 — 改价功能来回调整
   文件: src/pages/store/orders/index.tsx
   问题: 先把独立「改价」按钮和弹窗合并到「确认收款」弹窗中
   修复: 下午用户要求改回来，恢复独立的改价按钮（橙色bg-orange-500）和弹窗，确认收款弹窗去掉实付金额输入框

3. 门店订单页 — 拆分"确认完成"为"送达"和"确认完成"
   文件: src/pages/store/orders/index.tsx
   问题: 新增deliver（送达）操作：已发货但无送达照片时显示，上传照片后按钮自动隐藏
   修复: complete（确认完成）：仅已付款可操作，只标记orderStatus=1。清除误用deliveryStatus=30表示"已送达"的逻辑

4. 状态文案对齐 — "已发货待收款"
   文件: src/pages/store/orders/index.tsx, src/components/common/OrderCard/index.tsx, src/pages/order/detail.tsx
   问题: 线下付款(payType=9)+已发货+未付款 → 三端统一显示"已发货待收款"（红色）
   修复: 其他已发货 → "待收货"（蓝色）

5. 修复未付款已发货订单状态显示错误
   文件: src/components/common/OrderCard/index.tsx, src/pages/order/detail.tsx
   问题: !payStatus判断优先于deliveryStatus，导致"未付款但已发货"显示为"待付款"
   修复: 物流状态判断提前到付款状态之前

6. 门店中心 — 右上角扫码登录PC后台
   文件: src/pages/store/center/index.tsx
   问题: 顶部渐变区右上角新增扫码图标，点击调起微信扫码 → 解析token → confirmWechatQRLogin确认PC端登录

7. 订单详情页 — "过期时间"改为"送达时间"
   文件: src/pages/order/detail.tsx
   问题: 信息区「过期时间」(expirationTime)改为「送达时间」(deliveryTime)

8. 新用户注册后首次加购购物车不刷新
   文件: src/passport/login.tsx, src/passport/register.tsx, src/passport/sms-login.tsx, src/pages/shop/cart.tsx等
   问题: 登录/注册后只存了storage，未同步UserContext → isLoggedIn仍为false → 购物车不刷新
   修复: 登录/注册后调loginUser()/syncFromStorage()同步React状态

9. 收货地址编辑不加载旧数据
   文件: src/pages/user/address-edit.tsx, src/api/shop/shopUserAddress/index.ts
   问题: API路径PUT /shop/shop-user-address/{id} → PUT /shop/shop-user-address（后端无/{id}路径导致404）
   修复: setFormData改为merge模式防止null覆盖

10. 地图选择首次打开列表不显示
    文件: src/pages/user/address-edit.tsx
    问题: 鸿蒙手机首次打开chooseLocation时POI列表空白
    修复: 先getLocation获取当前位置传入地图，确保首次打开就在用户位置附近

11. 订单详情页金额明细0隐藏问题
    文件: src/pages/order/detail.tsx
    问题: {order.reducePrice && Number(order.reducePrice) > 0}当reducePrice为0时React渲染了文本"0"
    修复: 改为{Number(order.reducePrice || 0) > 0 && (...)}
